// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/trace_event/winheap_dump_provider_win.h"

#include <windows.h>

#include "base/trace_event/memory_dump_session_state.h"
#include "base/trace_event/process_memory_dump.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace base {
namespace trace_event {

    TEST(WinHeapDumpProviderTest, OnMemoryDump)
    {
        MemoryDumpArgs dump_args = { MemoryDumpLevelOfDetail::DETAILED };
        ProcessMemoryDump pmd(new MemoryDumpSessionState, dump_args);

        WinHeapDumpProvider* winheap_dump_provider = WinHeapDumpProvider::GetInstance();
        ASSERT_NE(static_cast<WinHeapDumpProvider*>(nullptr), winheap_dump_provider);

        ASSERT_NO_FATAL_FAILURE(winheap_dump_provider->OnMemoryDump(dump_args, &pmd));
    }

} // namespace trace_event
} // namespace base
